package com.kj.tms.system.service.role.dao;

import com.kj.tms.common.bean.dao.BaseMapper;
import com.kj.tms.pri.system.role.dto.RoleDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>项目名称：system<p>
 * <p>类名称：RoleMapper<p>
 * <p>类描述：角色表Mapper<p>
 *
 * @author 创建人：wangguoqing
 * @author 创建时间： 2017年10月18日 9:41
 * @author 修改人：wangguoqing
 * @author 修改时间：2017年10月18日 9:41
 * @author 修改备注：
 * @version: 2017年10月18日
 */
@Repository
public interface RoleMapper extends BaseMapper<RoleDto> {

    /**
     * @param map
     * @Title: 通过用户机构查询角色
     * @Description
     * @Method
     * @Return
     * @Date: 2017年10月18日 19:16
     * @Author:wangguoqing
     * @version: 2017年10月18日
     */
    List<RoleDto> listByUserOrg(Map map);

    RoleDto getById(RoleDto dto);

    /**
     * `
     * 删除数据
     *
     * @param roleId
     */
    void deleteByRoleId(@Param("roleId") String roleId);

    List<RoleDto> findBycondition(Map map);

    List<RoleDto> listAll();

    /**
     * @param map 角色ID
     * @return
     * @throws
     * @method [方法名]
     * @description [方法描述]
     * @author 王国庆
     * @version 1.0
     * @date 2018年01月08日 10:09
     */
    List<RoleDto> list(Map<String, Object> map);

    Integer selectCounts();

    /**
     * 删除记录 人员和机构对应的角色
     *
     * @param userId
     * @param orgCode
     */
    void deleteUserRole(@Param("userId") String userId, @Param("orgCode") String orgCode);

    /**
     * 插入记录 人员和机构和角色
     *
     * @param list
     */
    void batchAddUserRole(@Param("list") List<Object> list);


    /**
     * @param roleName 角色名称
     * @throws
     * @method [queryMutexByList]
     * @description [根据角色名称查询互斥角色]
     * @author 王国庆
     * @version 1.0
     * @date 2018年01月08日 16:50
     */
    List<RoleDto> queryMutexByList(@Param("roleName") String roleName);

    /**
     * @param roleId 角色ID
     * @throws
     * @method [queryMutexNameByList]
     * @description [根据角色ID查询角色信息]
     * @author 王国庆
     * @version 1.0
     * @date 2018年01月08日 16:50
     */
    RoleDto queryMutexNameByList(@Param("roleId") String roleId);

}